import request from '@/utils/request'

// ==================== 图书管理接口 ====================
// 直接调用 book-service，不经过 admin-service
const baseUrl = '/book/api/v1/book/admin'

/**
 * 分页查询图书列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.size - 每页条数
 * @param {string} params.title - 图书标题（可选）
 * @param {string} params.author - 作者（可选）
 * @param {number} params.categoryId - 分类ID（可选）
 */
export const getBookList = (params) => {
  return request.post(`${baseUrl}/list`, params)
}

/**
 * 获取图书详情
 * @param {number} id - 图书ID
 */
export const getBookById = (id) => {
  return request.get(`${baseUrl}/${id}`)
}

/**
 * 新增图书
 * @param {Object} data - 图书数据
 */
export const createBook = (data) => {
  return request.post(baseUrl, data)
}

/**
 * 更新图书
 * @param {number} id - 图书ID
 * @param {Object} data - 图书数据
 */
export const updateBook = (id, data) => {
  return request.put(`${baseUrl}/${id}`, data)
}

/**
 * 删除图书
 * @param {number} id - 图书ID
 */
export const deleteBook = (id) => {
  return request.delete(`${baseUrl}/${id}`)
}

/**
 * 批量删除图书
 * @param {Array<number>} ids - 图书ID数组
 */
export const batchDeleteBooks = (ids) => {
  // 后端直接接收List<Integer>，不需要包装成对象
  return request.post(`${baseUrl}/batch-delete`, ids)
}

/**
 * 上架/下架图书
 * @param {number} id - 图书ID
 * @param {number} status - 状态（1-上架，0-下架）
 */
export const updateBookStatus = (id, status) => {
  return request.put(`${baseUrl}/${id}/status`, { status })
}

/**
 * 导出图书数据
 * @param {Object} params - 查询参数
 */
export const exportBooks = (params) => {
  return request.get(`${baseUrl}/export`, { 
    params,
    responseType: 'blob'
  })
}

